package org.jadestudio.dsdown.util;

import java.io.IOException;

import javax.servlet.*;

import javax.servlet.http.HttpServlet;

public class CharFilter extends HttpServlet  implements   Filter {
    protected String encoding = null;  //声明一个存储编码的属性
    protected FilterConfig filterConfig = null; //创建一个过滤器配置对象
   /**
    * 销毁
    */
    public void destroy() {
          this.encoding = null;
          this.filterConfig = null;
    }

  /**
   * 执行
   */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain  chain) throws IOException, ServletException {
          // 选择并设置要使用的字符编码
          if((request.getCharacterEncoding()==null)){
              String encoding = selectEncoding();  //或得配置文件里面的编码设置
              if(encoding!=null){
                 request.setCharacterEncoding(encoding); //重新设置字符编码 ， 顾虑完毕
              }
          }
          // 将控制权传递到下一个过滤器
          chain.doFilter(request, response);
    }

	/**
	 * 初始化
	 */
    public void init(FilterConfig filterConfig) throws ServletException {
          this.filterConfig = filterConfig; //初始化过滤器的配置
          this.encoding = filterConfig.getInitParameter("charset"); //获得配置文件里面的编码并初始化给声明的存储编码的属性
    }

    //对编码的设置进行封装
    protected String selectEncoding() {
          return (this.encoding);
    }



} 


